-
Notifications
You must be signed in to change notification settings - Fork 112
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Simplify build system #24
Conversation
CMake is unable to use multiple compilers within a single build. We require building multiple binaries, one for each model, and as such they often require different compilers for each. Therefore we feel it is simpler to provide a simple, sample Makefile for each model. Some common configurations will be specalised in due course.
SYCL.make
Outdated
|
||
|
||
SYCLStream.sycl: SYCLStream.cpp | ||
compute++ SYCLStream.cpp -sycl -no-serial-memop -O2 -emit-llvm -c |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If computecpp_info is on the path (as compute++ seems to be) you can just query it for the device compiler flags:
$ computecpp_info --dump-device-compiler-flags
-O2 -mllvm -inline-threshold=1000 -sycl -intelspirmetadata -emit-llvm
which you can use then for the makefile
(device compiler flags may change across versions)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, we'll use this instead.
This doesn't include -no-serial-memop
though (which leads to warnings from the compiler). Should we just ignore that?
12506f1
to
d78baa4
Compare
Still needs additional work for HIP via HCC.
PGI creates these, even though we don't ask for them.
This branch aims to simplify the build system in general for GPU-STREAM. CMake is unable to build multiple binaries using multiple compilers with a single evocation. As such, it is simpler to just provide simple Makefiles which build the binaries for the various models in common configurations. They are simple to extend and customise for specific platforms if required.
This should fix a number of the Issues, in particular #8, #9, #14 and #18.